<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">

// <!-- 对象解构：  对象的属性没有次序，变量必须和属性同名，才能取到正确的值  -->
// <!-- 指定默认值： 生效条件为属性值严格等于undefined   -->

// <!-- 对象结构可以方便的实现将现有对象的方法，赋值到某个变量中去

        // var { foo, bar } = { foo: "aaa", bar: "bbb" };
        // console.log(foo);
        // foo // "aaa"
        // bar // "bbb"

//      对象的解构与数组有一个重要的不同。数组的元素是按次序排列的，变量的取值由它的位置决定；而对象的属性没有次序，变量必须与属性同名，才能取到正确的值。
        // var { bar, foo } = { foo: "aaa", bar: "bbb" };
        // foo // "aaa"
        // bar // "bbb"
        //
        // var { baz } = { foo: "aaa", bar: "bbb" };
        // baz // undefined
//      变量名与属性名不一致 代码这样改：
//         var { foo: baz } = { foo: 'aaa', bar: 'bbb' };
//         baz // "aaa"
//
//         let obj = { first: 'hello', last: 'world' };
//         let { first: f, last: l } = obj;
//         f // 'hello'
//         l // 'world'


//          对象的解构赋值的内部机制，是先找到同名属性，然后再赋给对应的变量。真正被赋值的是后者，而不是前者。
//          对象的解构赋值是下面形式的简写：
//
//             var { foo: foo, bar: bar } = { foo: "aaa", bar: "bbb" };


</script>
</body>
</html>